home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / compile_to_c17.c < prev    next >
C/C++ Source or Header  |  1998-01-16  |  77KB  |  2,298 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_c.h"
  9. /*No:CST_ATT_UNIQUE.arguments*/
  10. T0* r398try_to_undefine(T398* C,T0* a1,T0* a2){
  11. T0* R=NULL;
  12. X776undefine_in(a1,a2);
  13. R=r398try_to_undefine_aux(C,a1,a2);
  14. /*IF*/if ((R)!=((void*)(NULL))) {
  15. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T398*)C))->_clients/*20*/);
  16. /*]*/
  17. }
  18. else {
  19. r605fatal_undefine(((T605*)a2),a1);
  20. }
  21. /*FI*/return R;
  22. }
  23. /*No:CST_ATT_UNIQUE.is_deferred*/
  24. void r398add_into(T398* C,T0* a1){
  25. T0* _fn=NULL;
  26. int _i=0;
  27. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  28. _i=1;
  29. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  30. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  31. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  32. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  33. r683add_position(X776start_position(_fn));
  34. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  35. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  36. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  37. r7append(((T7*)(oBC683explanation)),b1);
  38. }/*]*/
  39. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  40. }
  41. else {
  42. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  43. }
  44. /*FI*/_i=(_i)+(1);
  45. }
  46. }
  47. T0* r398try_to_undefine_aux(T398* C,T0* a1,T0* a2){
  48. T0* R=NULL;
  49. r683add_position(r398start_position(C));
  50. r398error(X776start_position(a1),((T0*)ms1_308));
  51. r605fatal_undefine(((T605*)a2),a1);
  52. return R;
  53. }
  54. void r398make(T398* C,T0* a1,T0* a2){
  55. T0* _ic=NULL;
  56. int _i=0;
  57. r398make_e_feature(C,a1,a2);
  58. {T28*n=malloc(sizeof(*n));
  59. *n=M28;
  60. r28make(n,1,/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/);
  61. C->_values=(T0*)n;
  62. }
  63. _i=1;
  64. while (!((_i)>((((T28*)((T28*)((((T398*)C))->_values/*24*/))))->_upper/*12*/))) {
  65. {T342*n=malloc(sizeof(*n));
  66. *n=M342;
  67. r342make(n,r604next_unique(((T604*)(oBC364small_eiffel))),NULL);
  68. _ic=(T0*)n;
  69. }
  70. /*[IRF3.6put*/{T28* C1=((T28*)((((T398*)C))->_values/*24*/));
  71. T0* b1=_ic;
  72. int b2=_i;
  73. ((((T28*)C1))->_storage/*4*/)[(b2)-((((T28*)C1))->_lower/*16*/)]=(b1);
  74. }/*]*/
  75. _i=(_i)+(1);
  76. }
  77. }
  78. /*No:CST_ATT_UNIQUE.nb_errors*/
  79. /*No:CST_ATT_UNIQUE.set_header_comment*/
  80. /*No:CST_ATT_UNIQUE.values*/
  81. T0* r398start_position(T398* C){
  82. T0* R=NULL;
  83. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  84. return R;
  85. }
  86. T0* r398to_run_feature(T398* C,T0* a1,T0* a2){
  87. T0* R=NULL;
  88. T0* _rc=NULL;
  89. _rc=X291run_class(a1);
  90. R=r355at(((T355*)_rc),a2);
  91. if(NULL!=(R))switch(((T0*)R)->id) {
  92. case 808: 
  93. break;
  94. default:
  95. R=NULL;
  96. };/*IF*/if ((R)==((void*)(NULL))) {
  97. {T808*n=malloc(sizeof(*n));
  98. *n=M808;
  99. r808make(n,a1,a2,(T0*)C);
  100. R=(T0*)n;
  101. }
  102. }
  103. /*FI*/return R;
  104. }
  105. /*No:CST_ATT_UNIQUE.ensure_assertion*/
  106. /*No:CST_ATT_UNIQUE.code_require*/
  107. /*No:CST_ATT_UNIQUE.result_type*/
  108. /*No:CST_ATT_UNIQUE.em1*/
  109. /*No:CST_ATT_UNIQUE.set_clients*/
  110. /*No:CST_ATT_UNIQUE.em2*/
  111. /*No:CST_ATT_UNIQUE.value*/
  112. /*No:CST_ATT_UNIQUE.require_assertion*/
  113. /*No:CST_ATT_UNIQUE.names*/
  114. /*No:CST_ATT_UNIQUE.stupid_switch*/
  115. int r398can_hide(T398* C,T0* a1,T0* a2){
  116. int R=0;
  117. /*IF*/if (((((T398*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  118. /*IF*/if ((((((T398*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  119. r683add_position(X359start_position(a1));
  120. r398error(r398start_position(C),((T0*)ms5_359));
  121. }
  122. /*FI*/}
  123. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  124. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  125. r398error(r398start_position(C),((T0*)ms6_359));
  126. }
  127. /*FI*/}
  128. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  129. /*IF*/if (((((T398*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  130. /*IF*/if (!(X291is_a_in((((T398*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  131. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  132. r7append(((T7*)(oBC683explanation)),b1);
  133. }/*]*/
  134. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  135. r7append(((T7*)(oBC683explanation)),b1);
  136. }/*]*/
  137. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  138. }
  139. /*FI*/}
  140. /*FI*/}
  141. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  142. /*IF*//*AF*//*AE*/
  143. /*FI*/}
  144. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  145. return R;
  146. }
  147. /*No:CST_ATT_UNIQUE.header_comment*/
  148. int r398is_merge_with(T398* C,T0* a1,T0* a2){
  149. int R=0;
  150. /*IF*/if (((((T398*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  151. /*IF*/if ((((((T398*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  152. r683add_position(X359start_position(a1));
  153. r398error(r398start_position(C),((T0*)ms2_359));
  154. }
  155. /*FI*/}
  156. /*FI*//*IF*/if ((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X359arguments(a1)))) {
  157. /*IF*/{/*AT*/r683add_position(X359start_position(a1));
  158. r398error(r398start_position(C),((T0*)ms3_359));
  159. }
  160. /*FI*/}
  161. /*FI*//*IF*/if (((((T398*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  162. /*IF*/if (!(X291is_a_in((((T398*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  163. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  164. }
  165. /*FI*/}
  166. /*FI*//*IF*//*AF*//*AE*/
  167. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  168. return R;
  169. }
  170. /*No:CST_ATT_UNIQUE.fz_dot*/
  171. /*No:CST_ATT_UNIQUE.first_name*/
  172. /*No:CST_ATT_UNIQUE.clients*/
  173. void r398collect_for(int a1){
  174. /*IF*/if ((a1)==(1001)) {
  175. /*IF*//*AF*//*AE*/
  176. /*FI*/}
  177. else {
  178. /*IF*//*AF*//*AE*/
  179. /*FI*/}
  180. /*FI*/}
  181. void r398error(T0* a1,T0* a2){
  182. r683add_position(a1);
  183. r683error(((T683*)(oBC364eh)),a2);
  184. }
  185. /*No:CST_ATT_UNIQUE.base_class*/
  186. /*No:CST_ATT_UNIQUE.base_class_name*/
  187. void r398make_e_feature(T398* C,T0* a1,T0* a2){
  188. C->_names=a1;
  189. C->_result_type=a2;
  190. }
  191. /*No:INSTRUCTION_WITH_COMMENT.add_comment*/
  192. void r46make(T46* C,T0* a1,T0* a2){
  193. C->_instruction=a1;
  194. C->_comment=a2;
  195. }
  196. /*No:INSTRUCTION_WITH_COMMENT.instruction*/
  197. T0* r46start_position(T46* C){
  198. T0* R=NULL;
  199. R=X465start_position((((T46*)C))->_instruction/*8*/);
  200. return R;
  201. }
  202. void r46compile_to_c(T46* C){
  203. X465compile_to_c((((T46*)C))->_instruction/*8*/);
  204. }
  205. /*No:INSTRUCTION_WITH_COMMENT.comment*/
  206. T0* r46to_runnable(T46* C,T0* a1){
  207. T0* R=NULL;
  208. T0* _ri=NULL;
  209. /*IF*/if (((((T46*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  210. C->_run_compound=a1;
  211. _ri=X465to_runnable((((T46*)C))->_instruction/*8*/,a1);
  212. /*IF*/if ((_ri)==((void*)(NULL))) {
  213. r46error(X465start_position((((T46*)C))->_instruction/*8*/),((T0*)ms1_46));
  214. }
  215. else {
  216. C->_instruction=_ri;
  217. R=(T0*)C;
  218. }
  219. /*FI*/}
  220. else {
  221. {T46*n=malloc(sizeof(*n));
  222. *n=M46;
  223. r46make(n,(((T46*)C))->_instruction/*8*/,(((T46*)C))->_comment/*12*/);
  224. R=(T0*)n;
  225. }
  226. R=r46to_runnable(((T46*)R),a1);
  227. }
  228. /*FI*/return R;
  229. }
  230. /*No:INSTRUCTION_WITH_COMMENT.run_compound*/
  231. int r46is_pre_computable(T46* C){
  232. int R=0;
  233. R=X465is_pre_computable((((T46*)C))->_instruction/*8*/);
  234. return R;
  235. }
  236. int r46use_current(T46* C){
  237. int R=0;
  238. R=X465use_current((((T46*)C))->_instruction/*8*/);
  239. return R;
  240. }
  241. void r46error(T0* a1,T0* a2){
  242. r683add_position(a1);
  243. r683error(((T683*)(oBC364eh)),a2);
  244. }
  245. /*No:INSTRUCTION_WITH_COMMENT.end_mark_comment*/
  246. void r46afd_check(T46* C){
  247. X465afd_check((((T46*)C))->_instruction/*8*/);
  248. }
  249. /*No:EXTERNAL_FUNCTION.arguments*/
  250. T0* r679try_to_undefine(T679* C,T0* a1,T0* a2){
  251. T0* R=NULL;
  252. X776undefine_in(a1,a2);
  253. R=r679try_to_undefine_aux(C,a1,a2);
  254. /*IF*/if ((R)!=((void*)(NULL))) {
  255. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T679*)C))->_clients/*20*/);
  256. /*]*/
  257. }
  258. else {
  259. r605fatal_undefine(((T605*)a2),a1);
  260. }
  261. /*FI*/return R;
  262. }
  263. /*No:EXTERNAL_FUNCTION.is_deferred*/
  264. /*No:EXTERNAL_FUNCTION.fz_bad_assertion*/
  265. T0* r679runnable(T0* a1,T0* a2,T0* a3){
  266. T0* R=NULL;
  267. T0* _a=NULL;
  268. int _i=0;
  269. /*IF*/if (!(r608empty(((T608*)a1)))) {
  270. R=r608twin(((T608*)a1));
  271. _i=(((T608*)((T608*)R)))->_upper/*8*/;
  272. while (!((_i)==(0))) {
  273. r604push(((T604*)(oBC364small_eiffel)),a3);
  274. _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
  275. /*IF*/if ((_a)==((void*)(NULL))) {
  276. r679error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
  277. }
  278. else {
  279. /*[IRF3.6put*/{T608* C1=((T608*)R);
  280. T0* b1=_a;
  281. int b2=_i;
  282. ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
  283. }/*]*/
  284. }
  285. /*FI*/r604pop(((T604*)(oBC364small_eiffel)));
  286. _i=(_i)-(1);
  287. }
  288. }
  289. /*FI*/return R;
  290. }
  291. /*No:EXTERNAL_FUNCTION.rescue_compound*/
  292. void r679add_into(T679* C,T0* a1){
  293. T0* _fn=NULL;
  294. int _i=0;
  295. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  296. _i=1;
  297. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  298. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  299. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  300. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  301. r683add_position(X776start_position(_fn));
  302. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  303. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  304. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  305. r7append(((T7*)(oBC683explanation)),b1);
  306. }/*]*/
  307. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  308. }
  309. else {
  310. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  311. }
  312. /*FI*/_i=(_i)+(1);
  313. }
  314. }
  315. /*No:EXTERNAL_FUNCTION.end_comment*/
  316. T0* r679try_to_undefine_aux(T679* C,T0* a1,T0* a2){
  317. T0* R=NULL;
  318. {T649*n=malloc(sizeof(*n));
  319. *n=M649;
  320. r649from_effective(n,a1,(((T679*)C))->_arguments/*24*/,(((T679*)C))->_result_type/*12*/,(((T679*)C))->_require_assertion/*32*/,(((T679*)C))->_ensure_assertion/*36*/,a2);
  321. R=(T0*)n;
  322. }
  323. return R;
  324. }
  325. T0* r679external_c_name(T679* C){
  326. T0* R=NULL;
  327. /*IF*/if (((((T679*)C))->_alias_string/*52*/)==((void*)(NULL))) {
  328. R=X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  329. }
  330. else {
  331. R=(((T679*)C))->_alias_string/*52*/;
  332. }
  333. /*FI*/return R;
  334. }
  335. void r679make(T679* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
  336. r679make_routine(C,a1,a2,a4,a5,a6);
  337. C->_result_type=a3;
  338. r679make_external_routine(C,a7,a8);
  339. }
  340. /*No:EXTERNAL_FUNCTION.nb_errors*/
  341. /*No:EXTERNAL_FUNCTION.native*/
  342. void r679make_routine(T679* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  343. r679make_e_feature(C,a1,NULL);
  344. C->_header_comment=a4;
  345. C->_arguments=a2;
  346. C->_obsolete_mark=a3;
  347. C->_require_assertion=a5;
  348. }
  349. void r679set_header_comment(T679* C,T0* a1){
  350. /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
  351. C->_end_comment=a1;
  352. }
  353. /*FI*/}
  354. T0* r679start_position(T679* C){
  355. T0* R=NULL;
  356. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  357. return R;
  358. }
  359. T0* r679to_run_feature(T679* C,T0* a1,T0* a2){
  360. T0* R=NULL;
  361. r679check_obsolete(C);
  362. {T892*n=malloc(sizeof(*n));
  363. *n=M892;
  364. r892make(n,a1,a2,(T0*)C);
  365. R=(T0*)n;
  366. }
  367. return R;
  368. }
  369. /*No:EXTERNAL_FUNCTION.alias_string*/
  370. /*No:EXTERNAL_FUNCTION.ensure_assertion*/
  371. /*No:EXTERNAL_FUNCTION.code_require*/
  372. T0* r679run_ensure(T0* a1){
  373. T0* R=NULL;
  374. T0* _r=NULL;
  375. r608clear(((T608*)(oBC359assertion_collector)));
  376. /*[IRF3.3clear*/{T0* _default_item=NULL;
  377. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  378. }/*]*/
  379. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
  380. _r=r679runnable(oBC359assertion_collector,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
  381. /*IF*/if ((_r)!=((void*)(NULL))) {
  382. {T633*n=malloc(sizeof(*n));
  383. *n=M633;
  384. r633from_runnable(n,_r);
  385. R=(T0*)n;
  386. }
  387. /*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
  388. /*]*/
  389. /*[IRF3.3clear*/{T0* _default_item=NULL;
  390. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  391. }/*]*/
  392. }
  393. /*FI*/return R;
  394. }
  395. T0* r679run_require(T0* a1){
  396. T0* R=NULL;
  397. T0* _ar=NULL;
  398. T0* _hc=NULL;
  399. T0* _er=NULL;
  400. T0* _r=NULL;
  401. int _i=0;
  402. r522clear(((T522*)(oBC359require_collector)));
  403. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
  404. /*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
  405. _i=1;
  406. while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
  407. _er=r522item(((T522*)(oBC359require_collector)),_i);
  408. _hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
  409. /*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
  410. _r=r679runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
  411. /*IF*/if ((_r)!=((void*)(NULL))) {
  412. {T343*n=malloc(sizeof(*n));
  413. *n=M343;
  414. r343from_runnable(n,_r);
  415. _er=(T0*)n;
  416. }
  417. /*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
  418. /*]*/
  419. /*IF*/if ((_ar)==((void*)(NULL))) {
  420. _ar=se_ma522(1,_er);
  421. }
  422. else {
  423. r522add_last(((T522*)_ar),_er);
  424. }
  425. /*FI*/}
  426. /*FI*/}
  427. /*FI*/_i=(_i)+(1);
  428. }
  429. /*IF*/if ((_ar)!=((void*)(NULL))) {
  430. {T567*n=malloc(sizeof(*n));
  431. *n=M567;
  432. /*[IRF3.3make*/((((T567*)(n)))->_list)=(_ar);
  433. /*]*/
  434. R=(T0*)n;
  435. }
  436. }
  437. /*FI*/}
  438. /*FI*/return R;
  439. }
  440. /*No:EXTERNAL_FUNCTION.result_type*/
  441. /*No:EXTERNAL_FUNCTION.fz_03*/
  442. /*No:EXTERNAL_FUNCTION.em1*/
  443. /*No:EXTERNAL_FUNCTION.obsolete_mark*/
  444. /*No:EXTERNAL_FUNCTION.set_clients*/
  445. /*No:EXTERNAL_FUNCTION.em2*/
  446. /*No:EXTERNAL_FUNCTION.names*/
  447. /*No:EXTERNAL_FUNCTION.require_assertion*/
  448. /*No:EXTERNAL_FUNCTION.code_ensure*/
  449. int r679stupid_switch(T679* C,T0* a1,T0* a2){
  450. int R=0;
  451. R=X845stupid_switch((((T679*)C))->_native/*48*/,X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/));
  452. return R;
  453. }
  454. void r679set_rescue_compound(T679* C,T0* a1){
  455. /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
  456. r679error(r679start_position(C),((T0*)ms6_368));
  457. }
  458. /*FI*/C->_rescue_compound=a1;
  459. }
  460. void r679make_external_routine(T679* C,T0* a1,T0* a2){
  461. C->_native=a1;
  462. C->_alias_string=a2;
  463. }
  464. int r679can_hide(T679* C,T0* a1,T0* a2){
  465. int R=0;
  466. /*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  467. /*IF*/if ((((((T679*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  468. r683add_position(X359start_position(a1));
  469. r679error(r679start_position(C),((T0*)ms5_359));
  470. }
  471. /*FI*/}
  472. /*FI*//*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  473. /*IF*/if ((((((T679*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  474. r683add_position(X359start_position(a1));
  475. r679error(r679start_position(C),((T0*)ms6_359));
  476. }
  477.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T679*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  478. r683add_position(X359start_position(a1));
  479. r679error(r679start_position(C),((T0*)ms7_359));
  480. }
  481. /*FI*/}
  482. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  483. /*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  484. /*IF*/if (!(X291is_a_in((((T679*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  485. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  486. r7append(((T7*)(oBC683explanation)),b1);
  487. }/*]*/
  488. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  489. r7append(((T7*)(oBC683explanation)),b1);
  490. }/*]*/
  491. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  492. }
  493. /*FI*/}
  494. /*FI*/}
  495. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  496. /*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  497. /*IF*/if (!(r31is_a_in(((T31*)((((T679*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  498. r683add_position(X359start_position(a1));
  499. r683add_position(r679start_position(C));
  500. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  501. r7append(((T7*)(oBC683explanation)),b1);
  502. }/*]*/
  503. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  504. r7append(((T7*)(oBC683explanation)),b1);
  505. }/*]*/
  506. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  507. }
  508. /*FI*/}
  509. /*FI*/}
  510. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  511. return R;
  512. }
  513. /*No:EXTERNAL_FUNCTION.header_comment*/
  514. int r679is_merge_with(T679* C,T0* a1,T0* a2){
  515. int R=0;
  516. /*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  517. /*IF*/if ((((((T679*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  518. r683add_position(X359start_position(a1));
  519. r679error(r679start_position(C),((T0*)ms2_359));
  520. }
  521. /*FI*/}
  522. /*FI*//*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  523. /*IF*/if ((((((T679*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  524. r683add_position(X359start_position(a1));
  525. r679error(r679start_position(C),((T0*)ms3_359));
  526. }
  527.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T679*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  528. r683add_position(X359start_position(a1));
  529. r679error(r679start_position(C),((T0*)ms4_359));
  530. }
  531. /*FI*/}
  532. /*FI*//*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  533. /*IF*/if (!(X291is_a_in((((T679*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  534. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  535. }
  536. /*FI*/}
  537. /*FI*//*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  538. /*IF*/if (!(r31is_a_in(((T31*)((((T679*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  539. r683add_position(X359start_position(a1));
  540. r679error(r679start_position(C),((T0*)ms12_359));
  541. }
  542. /*FI*/}
  543. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  544. return R;
  545. }
  546. /*No:EXTERNAL_FUNCTION.fz_dot*/
  547. /*No:EXTERNAL_FUNCTION.set_ensure_assertion*/
  548. /*No:EXTERNAL_FUNCTION.first_name*/
  549. /*No:EXTERNAL_FUNCTION.clients*/
  550. int r679use_current(T679* C){
  551. int R=0;
  552. R=X845use_current((((T679*)C))->_native/*48*/,(T0*)C);
  553. return R;
  554. }
  555. void r679collect_for(T679* C,int a1){
  556. /*IF*/if ((a1)==(1001)) {
  557. /*IF*/if (((((T679*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
  558. /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T679*)C))->_require_assertion/*32*/))) {
  559. r522add_last(((T522*)(oBC359require_collector)),(((T679*)C))->_require_assertion/*32*/);
  560. }
  561. /*FI*/}
  562. /*FI*/}
  563. else {
  564. /*IF*/if (((((T679*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  565. /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T679*)C))->_ensure_assertion/*36*/))))->_header_comment/*4*/);
  566. /*]*/
  567. r633add_into(((T633*)((((T679*)C))->_ensure_assertion/*36*/)),oBC359assertion_collector);
  568. }
  569. /*FI*/}
  570. /*FI*/}
  571. void r679error(T0* a1,T0* a2){
  572. r683add_position(a1);
  573. r683error(((T683*)(oBC364eh)),a2);
  574. }
  575. /*No:EXTERNAL_FUNCTION.base_class*/
  576. /*No:EXTERNAL_FUNCTION.base_class_name*/
  577. void r679make_e_feature(T679* C,T0* a1,T0* a2){
  578. C->_names=a1;
  579. C->_result_type=a2;
  580. }
  581. void r679check_obsolete(T679* C){
  582. /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
  583. /*IF*/if (((((T679*)C))->_obsolete_mark/*28*/)!=((void*)(NULL))) {
  584. /*[IRF3.6append*/{T0* b1=((T0*)ms7_368);
  585. r7append(((T7*)(oBC683explanation)),b1);
  586. }/*]*/
  587. /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T679*)C))->_obsolete_mark/*28*/))))->_to_string/*16*/;
  588. r7append(((T7*)(oBC683explanation)),b1);
  589. }/*]*/
  590. r679warning(r679start_position(C),((T0*)ms137_470));
  591. }
  592. /*FI*/}
  593. /*FI*/}
  594. void r679warning(T0* a1,T0* a2){
  595. r683add_position(a1);
  596. r683warning(((T683*)(oBC364eh)),a2);
  597. }
  598. void r145make(T145* C,T0* a1,T0* a2){
  599. C->_comment=a2;
  600. C->_expression=a1;
  601. }
  602. /*No:LOOP_VARIANT_1.nb_errors*/
  603. /*No:LOOP_VARIANT_1.expression*/
  604. T0* r145start_position(T145* C){
  605. T0* R=NULL;
  606. R=X662start_position((((T145*)C))->_expression/*8*/);
  607. return R;
  608. }
  609. /*No:LOOP_VARIANT_1.comment*/
  610. T0* r145to_runnable(T145* C,T0* a1){
  611. T0* R=NULL;
  612. T0* _e=NULL;
  613. /*IF*/if (((((T145*)C))->_current_type/*12*/)==((void*)(NULL))) {
  614. C->_current_type=a1;
  615. _e=X662to_runnable((((T145*)C))->_expression/*8*/,a1);
  616. /*IF*/if ((_e)==((void*)(NULL))) {
  617. r145error(r145start_position(C),((T0*)ms1_856));
  618. }
  619. else {
  620. C->_expression=_e;
  621. /*IF*/if (!(X291is_integer(X662result_type((((T145*)C))->_expression/*8*/)))) {
  622. r145error(X662start_position((((T145*)C))->_expression/*8*/),((T0*)ms2_856));
  623. }
  624. /*FI*/}
  625. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  626. R=(T0*)C;
  627. }
  628. /*FI*/}
  629. else {
  630. R=r145twin(C);
  631. /*[IRF3.3set_current_type*/((((T145*)(((T145*)R))))->_current_type)=(NULL);
  632. /*]*/
  633. R=r145to_runnable(((T145*)R),a1);
  634. }
  635. /*FI*/return R;
  636. }
  637. T0* r145twin(T145* C){
  638. T0* R=NULL;
  639. R=malloc(sizeof(*C));
  640. *((T145*)R)=*C;
  641. return R;
  642. }
  643. /*No:LOOP_VARIANT_1.set_current_type*/
  644. /*No:LOOP_VARIANT_1.current_type*/
  645. int r145use_current(T145* C){
  646. int R=0;
  647. R=X662use_current((((T145*)C))->_expression/*8*/);
  648. return R;
  649. }
  650. void r145error(T0* a1,T0* a2){
  651. r683add_position(a1);
  652. r683error(((T683*)(oBC364eh)),a2);
  653. }
  654. void r145afd_check(T145* C){
  655. X662afd_check((((T145*)C))->_expression/*8*/);
  656. }
  657. void r892c_closing(T892* C){
  658. r892define_closing(C);
  659. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms149_470));
  660. /*]*/
  661. }
  662. int r892id(T892* C){
  663. int R=0;
  664. R=X291id((((T892*)C))->_current_type/*4*/);
  665. return R;
  666. }
  667. /*No:RUN_FEATURE_8.arguments*/
  668. /*No:RUN_FEATURE_8.us_character_bits*/
  669. /*No:RUN_FEATURE_8.c_prototype*/
  670. /*No:RUN_FEATURE_8.ucs_true*/
  671. /*No:RUN_FEATURE_8.us_generator*/
  672. void r892c_define(T892* C){
  673. T0* _bcn=NULL;
  674. T0* _native=NULL;
  675. T0* _bf=NULL;
  676. _bf=(((T892*)C))->_base_feature/*48*/;
  677. _native=(((T679*)((T679*)_bf)))->_native/*48*/;
  678. _bcn=(((T451*)((T451*)((((T605*)((T605*)((((T679*)((T679*)_bf)))->_base_class/*4*/))))->_base_class_name/*24*/))))->_to_string/*0*/;
  679. X845c_define_function(_native,(T0*)C,_bcn,X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)((T679*)_bf)))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/));
  680. }
  681. /*No:RUN_FEATURE_8.actuals_clients*/
  682. void r892define_closing(T892* C){
  683. /*IF*/if (r892use_current(C)) {
  684. r324current_class_invariant(((T324*)(oBC364cpp)),(((T892*)C))->_current_type/*4*/);
  685. }
  686. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  687. /*IF*/if (((((T892*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  688. r633compile_to_c(((T633*)((((T892*)C))->_ensure_assertion/*36*/)));
  689. }
  690. /*FI*/}
  691. /*FI*//*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
  692. /*[IRF3.6rs_unlink*/{T324* C1=((T324*)(oBC364cpp));
  693. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)C1))->_current_out/*56*/)),((T0*)ms156_324));
  694. /*]*/
  695. }/*]*/
  696. }
  697. /*FI*/}
  698. /*No:RUN_FEATURE_8.us_integer_bits*/
  699. /*No:RUN_FEATURE_8.ucs_in_computation*/
  700. void r892make(T892* C,T0* a1,T0* a2,T0* a3){
  701. C->_current_type=a1;
  702. C->_name=a2;
  703. C->_base_feature=a3;
  704. r199put(((T199*)((((T355*)((T355*)(r892run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
  705. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  706. C->_use_current_state=1005;
  707. r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
  708. r892initialize(C);
  709. r604pop(((T604*)(oBC364small_eiffel)));
  710. }
  711. void r892std_compute_use_current(T892* C){
  712. /*IF*/if (((((T892*)C))->_use_current_state/*40*/)==(1006)) {
  713. /*IF*/if (((((T892*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  714. /*IF*/if (r567use_current(((T567*)((((T892*)C))->_require_assertion/*28*/)))) {
  715. C->_use_current_state=1004;
  716. }
  717. /*FI*/}
  718. /*FI*/}
  719. /*FI*//*IF*/if (((((T892*)C))->_use_current_state/*40*/)==(1006)) {
  720. /*IF*/if (((((T892*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  721. /*IF*/if (r592use_current(((T592*)((((T892*)C))->_routine_body/*32*/)))) {
  722. C->_use_current_state=1004;
  723. }
  724. /*FI*/}
  725. /*FI*/}
  726. /*FI*//*IF*/if (((((T892*)C))->_use_current_state/*40*/)==(1006)) {
  727. /*IF*/if (((((T892*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  728. /*IF*/if (r633use_current(((T633*)((((T892*)C))->_ensure_assertion/*36*/)))) {
  729. C->_use_current_state=1004;
  730. }
  731. /*FI*/}
  732. /*FI*/}
  733. /*FI*//*IF*/if (((((T892*)C))->_use_current_state/*40*/)==(1006)) {
  734. C->_use_current_state=1003;
  735. }
  736. /*FI*/}
  737. /*No:RUN_FEATURE_8.name*/
  738. void r892default_mapping_function(T892* C){
  739. r892mapping_name(C);
  740. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  741. char b1='\50';
  742. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  743. }/*]*/
  744. /*]*/
  745. r324put_target_as_target(((T324*)(oBC364cpp)));
  746. /*IF*/if ((r892arg_count(C))>(0)) {
  747. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  748. char b1='\54';
  749. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  750. }/*]*/
  751. /*]*/
  752. r324put_arguments(((T324*)(oBC364cpp)));
  753. }
  754. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  755. char b1='\51';
  756. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  757. }/*]*/
  758. /*]*/
  759. }
  760. void r892mapping_name(T892* C){
  761. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  762. char b1='r';
  763. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  764. }/*]*/
  765. /*]*/
  766. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),r892id(C));
  767. /*]*/
  768. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_key((((T892*)C))->_name/*16*/));
  769. /*]*/
  770. }
  771. int fBC364type_string=0;
  772. T0*oBC364type_string=NULL;
  773. T0* r892type_string(void){
  774. if (fBC364type_string==0){
  775. T0* R=NULL;
  776. fBC364type_string=1;
  777. {T491*n=malloc(sizeof(*n));
  778. *n=M491;
  779. r491make(n,NULL);
  780. R=(T0*)n;
  781. }
  782. oBC364type_string=R;}
  783. return oBC364type_string;}
  784. /*No:RUN_FEATURE_8.fz_iinaiv*/
  785. int r892arg_count(T892* C){
  786. int R=0;
  787. /*IF*/if (((((T892*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  788. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T892*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  789. }
  790. /*FI*/return R;
  791. }
  792. void r892routine_afd_check(T892* C){
  793. /*IF*/if (((((T892*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  794. r567afd_check(((T567*)((((T892*)C))->_require_assertion/*28*/)));
  795. }
  796. /*FI*//*IF*/if (((((T892*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  797. r592afd_check(((T592*)((((T892*)C))->_routine_body/*32*/)));
  798. }
  799. /*FI*//*IF*/if (((((T892*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  800. r633afd_check(((T633*)((((T892*)C))->_ensure_assertion/*36*/)));
  801. }
  802. /*FI*/}
  803. /*No:RUN_FEATURE_8.local_vars*/
  804. /*No:RUN_FEATURE_8.base_feature*/
  805. int r892integer_value(T892* C,T0* a1){
  806. int R=0;
  807. T0* _n=NULL;
  808. _n=X776to_string((((T892*)C))->_name/*16*/);
  809. /*IF*/if ((((T0*)ms81_473))==((void*)(_n))) {
  810. R= (CHAR_BIT*sizeof(int)) ;
  811. }
  812.  else if ((((T0*)ms56_473))==((void*)(_n))) {
  813. R= CHAR_BIT ;
  814. }
  815. else {
  816. r683add_position(a1);
  817. r683add_position(/*(IRF4.6start_position*/r679start_position(((T679*)((((T892*)C))->_base_feature/*48*/)))/*)*/);
  818. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms69_470);
  819. r683fatal_error(((T683*)(oBC364eh)),b1);
  820. }/*]*/
  821. }
  822. /*FI*/return R;
  823. }
  824. void r892define_opening(T892* C){
  825. T0* _t=NULL;
  826. int _i=0;
  827. /*IF*/if (((((T892*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  828. _t=X291run_type((((T892*)C))->_result_type/*24*/);
  829. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496c_code)))))->_count)=(0);
  830. /*]*/
  831. X291c_type_for_result_in(_t,oBC496c_code);
  832. r7extend(((T7*)(oBC496c_code)),'\40');
  833. r7extend(((T7*)(oBC496c_code)),'R');
  834. r7extend(((T7*)(oBC496c_code)),'\75');
  835. X291c_initialize_in(_t,oBC496c_code);
  836. r7append(((T7*)(oBC496c_code)),((T0*)ms134_470));
  837. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC496c_code);
  838. /*]*/
  839. }
  840. /*FI*//*IF*//*AF*//*AE*/
  841. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  842. /*IF*/if (((((T892*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  843. r633compile_to_c_old(((T633*)((((T892*)C))->_ensure_assertion/*36*/)));
  844. }
  845. /*FI*/}
  846. /*FI*//*IF*//*AF*//*AE*/
  847. /*FI*//*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
  848. r324rs_link(((T324*)(oBC364cpp)),(T0*)C);
  849. /*IF*/if (r892use_current(C)) {
  850. /*[IRF3.6rs_push_current*/{T324* C1=((T324*)(oBC364cpp));
  851. T0* b1=(((T892*)C))->_current_type/*4*/;
  852. r324rs_push(C1,((T0*)ms143_473),((T0*)ms157_324),b1);
  853. }/*]*/
  854. }
  855. /*FI*/_i=1;
  856. while (!((_i)>(r892arg_count(C)))) {
  857. _t=X291run_type(r31type(((T31*)((((T892*)C))->_arguments/*20*/)),_i));
  858. r324rs_push_argument(((T324*)(oBC364cpp)),(((T873*)((T873*)(/*(IRF4.6name*/r65item(((T65*)((((T31*)((T31*)((((T892*)C))->_arguments/*20*/))))->_flat_list/*12*/)),_i)/*)*/))))->_to_string/*12*/,_i,_t);
  859. _i=(_i)+(1);
  860. }
  861. /*IF*/if (((((T892*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  862. /*[IRF3.6rs_push_result*/{T324* C1=((T324*)(oBC364cpp));
  863. T0* b1=X291run_type((((T892*)C))->_result_type/*24*/);
  864. r324rs_push(C1,((T0*)ms146_473),((T0*)ms158_324),b1);
  865. }/*]*/
  866. }
  867. /*FI*//*IF*//*AF*//*AE*/
  868. /*FI*/}
  869. /*FI*//*IF*/if (((((T892*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  870. r567compile_to_c(((T567*)((((T892*)C))->_require_assertion/*28*/)));
  871. }
  872. /*FI*/}
  873. /*No:RUN_FEATURE_8.start_position*/
  874. /*No:RUN_FEATURE_8.us_is_expanded_type*/
  875. /*No:RUN_FEATURE_8.fz_00*/
  876. void r892c_define_with_body(T892* C,T0* a1){
  877. r892c_opening(C);
  878. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),a1);
  879. /*]*/
  880. r892c_closing(C);
  881. }
  882. /*No:RUN_FEATURE_8.ensure_assertion*/
  883. int r892is_exported_in(T892* C,T0* a1){
  884. int R=0;
  885. R=r636gives_permission_to(((T636*)(r892clients(C))),a1);
  886. return R;
  887. }
  888. void r892compute_use_current(T892* C){
  889. /*IF*/if (r679use_current(((T679*)((((T892*)C))->_base_feature/*48*/)))) {
  890. C->_use_current_state=1004;
  891. }
  892. else {
  893. r892std_compute_use_current(C);
  894. }
  895. /*FI*/}
  896. /*No:RUN_FEATURE_8.result_type*/
  897. int r892is_static(T892* C){
  898. int R=0;
  899. T0* _type_bit=NULL;
  900. T0* _n=NULL;
  901. _n=X776to_string((((T892*)C))->_name/*16*/);
  902. /*IF*/if ((((T0*)ms83_473))==((void*)(_n))) {
  903. R=1;
  904. /*IF*/if (X291is_expanded((((T892*)C))->_current_type/*4*/)) {
  905. C->_static_value_mem=1;
  906. }
  907. /*FI*/}
  908.  else if ((((T0*)ms82_473))==((void*)(_n))) {
  909. R=1;
  910. /*IF*/if (X291is_basic_eiffel_expanded((((T892*)C))->_current_type/*4*/)) {
  911. C->_static_value_mem=1;
  912. }
  913. /*FI*/}
  914.  else if (((((T0*)ms60_473))==((void*)(_n)))&&(X291is_bit((((T892*)C))->_current_type/*4*/))) {
  915. R=1;
  916. _type_bit=(((T892*)C))->_current_type/*4*/;
  917. if(NULL!=(_type_bit))switch(((T0*)_type_bit)->id) {
  918. case 549: case 558: 
  919. break;
  920. default:
  921. _type_bit=NULL;
  922. };C->_static_value_mem=X609nb(_type_bit);
  923. }
  924. /*FI*/return R;
  925. }
  926. /*No:RUN_FEATURE_8.us_bitn*/
  927. /*No:RUN_FEATURE_8.us_twin*/
  928. void r892add_client(T892* C,T0* a1){
  929. int _i=0;
  930. /*IF*/if (((((T892*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
  931. {T187*n=malloc(sizeof(*n));
  932. *n=M187;
  933. r187with_capacity(n,4);
  934. C->_actuals_clients=(T0*)n;
  935. }
  936. r187add_last(((T187*)((((T892*)C))->_actuals_clients/*12*/)),a1);
  937. }
  938. else {
  939. _i=r187fast_index_of(((T187*)((((T892*)C))->_actuals_clients/*12*/)),a1);
  940. /*IF*/if ((_i)>((((T187*)((T187*)((((T892*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
  941. r187add_last(((T187*)((((T892*)C))->_actuals_clients/*12*/)),a1);
  942. }
  943. /*FI*/}
  944. /*FI*/r355add_client(((T355*)(r892run_class(C))),a1);
  945. }
  946. /*No:RUN_FEATURE_8.fz_15*/
  947. /*No:RUN_FEATURE_8.require_assertion*/
  948. /*No:RUN_FEATURE_8.use_current_state*/
  949. /*No:RUN_FEATURE_8.us_is_basic_expanded_type*/
  950. /*No:RUN_FEATURE_8.us_generating_type*/
  951. void r892external_prototype(T892* C,T0* a1){
  952. T0* _t=NULL;
  953. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496c_code)))))->_count)=(0);
  954. /*]*/
  955. r7append(((T7*)(oBC496c_code)),((T0*)ms2_496));
  956. _t=(((T892*)C))->_result_type/*24*/;
  957. /*IF*/if ((_t)==((void*)(NULL))) {
  958. r7append(((T7*)(oBC496c_code)),((T0*)ms133_470));
  959. }
  960. else {
  961. X291c_type_for_external_in(_t,oBC496c_code);
  962. }
  963. /*FI*/r7extend(((T7*)(oBC496c_code)),'\40');
  964. r7append(((T7*)(oBC496c_code)),X279external_c_name(a1));
  965. r7extend(((T7*)(oBC496c_code)),'\50');
  966. /*IF*/if (X279use_current(a1)) {
  967. X291c_type_for_external_in((((T892*)C))->_current_type/*4*/,oBC496c_code);
  968. r7extend(((T7*)(oBC496c_code)),'\40');
  969. r7extend(((T7*)(oBC496c_code)),'C');
  970. /*IF*/if (((((T892*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  971. r7extend(((T7*)(oBC496c_code)),'\54');
  972. }
  973. /*FI*/}
  974. /*FI*//*IF*/if (((((T892*)C))->_arguments/*20*/)==((void*)(NULL))) {
  975. /*IF*/if (!(X279use_current(a1))) {
  976. r7append(((T7*)(oBC496c_code)),((T0*)ms133_470));
  977. }
  978. /*FI*/}
  979. else {
  980. r31external_prototype(((T31*)((((T892*)C))->_arguments/*20*/)),oBC496c_code);
  981. }
  982. /*FI*/r7append(((T7*)(oBC496c_code)),((T0*)ms3_496));
  983. r324swap_on_h(((T324*)(oBC364cpp)));
  984. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC496c_code);
  985. /*]*/
  986. /*[IRF3.3swap_on_c*/((((T324*)(((T324*)(oBC364cpp)))))->_current_out)=(oBC324out_c);
  987. /*]*/
  988. }
  989. /*No:RUN_FEATURE_8.can_be_dropped*/
  990. /*No:RUN_FEATURE_8.us_count*/
  991. /*No:RUN_FEATURE_8.us_se_argc*/
  992. /*No:RUN_FEATURE_8.current_type*/
  993. T0* r892run_class(T892* C){
  994. T0* R=NULL;
  995. R=X291run_class((((T892*)C))->_current_type/*4*/);
  996. return R;
  997. }
  998. /*No:RUN_FEATURE_8.static_value_mem*/
  999. void r892define_prototype(T892* C){
  1000. int _mem_id=0;
  1001. _mem_id=r892id(C);
  1002. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496c_code)))))->_count)=(0);
  1003. /*]*/
  1004. /*IF*/if (((((T892*)C))->_result_type/*24*/)==((void*)(NULL))) {
  1005. r7append(((T7*)(oBC496c_code)),((T0*)ms133_470));
  1006. }
  1007. else {
  1008. X291c_type_for_result_in(X291run_type((((T892*)C))->_result_type/*24*/),oBC496c_code);
  1009. }
  1010. /*FI*/r7extend(((T7*)(oBC496c_code)),'\40');
  1011. r7extend(((T7*)(oBC496c_code)),'r');
  1012. r2append_in(_mem_id,oBC496c_code);
  1013. X776mapping_c_in((((T892*)C))->_name/*16*/,oBC496c_code);
  1014. r7extend(((T7*)(oBC496c_code)),'\50');
  1015. /*IF*/if (r892use_current(C)) {
  1016. X291c_type_for_target_in((((T892*)C))->_current_type/*4*/,oBC496c_code);
  1017. r7extend(((T7*)(oBC496c_code)),'\40');
  1018. r7extend(((T7*)(oBC496c_code)),'C');
  1019. /*IF*/if (((((T892*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  1020. r7extend(((T7*)(oBC496c_code)),'\54');
  1021. }
  1022. /*FI*/}
  1023. /*FI*//*IF*/if (((((T892*)C))->_arguments/*20*/)==((void*)(NULL))) {
  1024. /*IF*/if (!(r892use_current(C))) {
  1025. r7append(((T7*)(oBC496c_code)),((T0*)ms133_470));
  1026. }
  1027. /*FI*/}
  1028. else {
  1029. r31compile_to_c_in(((T31*)((((T892*)C))->_arguments/*20*/)),oBC496c_code);
  1030. }
  1031. /*FI*/r7extend(((T7*)(oBC496c_code)),'\51');
  1032. r324put_c_heading(((T324*)(oBC364cpp)),oBC496c_code);
  1033. /*[IRF3.3swap_on_c*/((((T324*)(((T324*)(oBC364cpp)))))->_current_out)=(oBC324out_c);
  1034. /*]*/
  1035. }
  1036. /*No:RUN_FEATURE_8.ucs_not_computed*/
  1037. void r892fall_down(T892* C){
  1038. T0* _rf=NULL;
  1039. T0* _sub_name=NULL;
  1040. T0* _sub_bc=NULL;
  1041. T0* _current_bc=NULL;
  1042. T0* _sub_rc=NULL;
  1043. T0* _current_rc=NULL;
  1044. int _i=0;
  1045. T0* _running=NULL;
  1046. _current_rc=X291run_class((((T892*)C))->_current_type/*4*/);
  1047. _running=(((T355*)((T355*)_current_rc)))->_running/*12*/;
  1048. /*IF*/if ((_running)!=((void*)(NULL))) {
  1049. _current_bc=X291base_class((((T892*)C))->_current_type/*4*/);
  1050. _i=(((T396*)((T396*)_running)))->_lower/*12*/;
  1051. while (!((_i)>((((T396*)((T396*)_running)))->_upper/*8*/))) {
  1052. _sub_rc=r396item(((T396*)_running),_i);
  1053. /*IF*/if ((_sub_rc)!=((void*)(_current_rc))) {
  1054. _sub_bc=X291base_class((((T355*)((T355*)_sub_rc)))->_current_type/*0*/);
  1055. _sub_name=r605new_name_of(((T605*)_sub_bc),_current_bc,(((T892*)C))->_name/*16*/);
  1056. _rf=r355get_feature(((T355*)_sub_rc),_sub_name);
  1057. }
  1058. /*FI*/_i=(_i)+(1);
  1059. }
  1060. }
  1061. /*FI*/}
  1062. /*No:RUN_FEATURE_8.routine_body*/
  1063. /*No:RUN_FEATURE_8.fz_void*/
  1064. /*No:RUN_FEATURE_8.ucs_false*/
  1065. /*No:RUN_FEATURE_8.is_pre_computable*/
  1066. T0* r892clients(T892* C){
  1067. T0* R=NULL;
  1068. T0* _bfbc=NULL;
  1069. T0* _bc=NULL;
  1070. /*IF*/if (((((T892*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
  1071. _bc=X291base_class((((T892*)C))->_current_type/*4*/);
  1072. _bfbc=(((T679*)((T679*)((((T892*)C))->_base_feature/*48*/))))->_base_class/*4*/;
  1073. /*IF*/if ((_bc)==((void*)(_bfbc))) {
  1074. R=(((T679*)((T679*)((((T892*)C))->_base_feature/*48*/))))->_clients/*20*/;
  1075. }
  1076. else {
  1077. R=r605clients_for(((T605*)_bc),(((T892*)C))->_name/*16*/);
  1078. }
  1079. /*FI*/C->_clients_memory=R;
  1080. }
  1081. else {
  1082. R=(((T892*)C))->_clients_memory/*8*/;
  1083. }
  1084. /*FI*/return R;
  1085. }
  1086. int r892use_current(T892* C){
  1087. int R=0;
  1088. {int z1=(((T892*)C))->_use_current_state/*40*/;
  1089.  
  1090. if((1004==z1)){
  1091. R=1;
  1092. }
  1093.  else 
  1094. if((1003==z1)){
  1095. }
  1096.  else 
  1097. if((1005==z1)){
  1098. C->_use_current_state=1006;
  1099. r892compute_use_current(C);
  1100. R=r892use_current(C);
  1101. }
  1102.  else {R=1;
  1103. }}
  1104. return R;
  1105. }
  1106. void r892mapping_c(T892* C){
  1107. T0* _bcn=NULL;
  1108. T0* _native=NULL;
  1109. T0* _bf=NULL;
  1110. _bf=(((T892*)C))->_base_feature/*48*/;
  1111. _native=(((T679*)((T679*)_bf)))->_native/*48*/;
  1112. _bcn=(((T451*)((T451*)((((T605*)((T605*)((((T679*)((T679*)_bf)))->_base_class/*4*/))))->_base_class_name/*24*/))))->_to_string/*0*/;
  1113. X845c_mapping_function(_native,(T0*)C,_bcn,X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)((T679*)_bf)))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/));
  1114. }
  1115. /*No:RUN_FEATURE_8.fatal_error*/
  1116. /*No:RUN_FEATURE_8.address_of*/
  1117. void r892c_opening(T892* C){
  1118. r892define_prototype(C);
  1119. r892define_opening(C);
  1120. }
  1121. void r892put_tag(T892* C){
  1122. T0* _fn=NULL;
  1123. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1124. char b1='\42';
  1125. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1126. }/*]*/
  1127. /*]*/
  1128. _fn=/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)((T679*)((((T892*)C))->_base_feature/*48*/))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/;
  1129. X776cpp_put_infix_or_prefix(_fn);
  1130. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X776to_string(_fn));
  1131. /*]*/
  1132. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_496));
  1133. /*]*/
  1134. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),(((T451*)((T451*)(/*(IRF4.6base_class_name*/(((T605*)((T605*)((((T679*)((T679*)((((T892*)C))->_base_feature/*48*/))))->_base_class/*4*/))))->_base_class_name/*24*//*)*/))))->_to_string/*0*/);
  1135. /*]*/
  1136. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1137. char b1='\42';
  1138. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1139. }/*]*/
  1140. /*]*/
  1141. }
  1142. /*No:RUN_FEATURE_8.clients_memory*/
  1143. void r892initialize(T892* C){
  1144. T0* _type_bit_ref=NULL;
  1145. T0* _rf=NULL;
  1146. T0* _n=NULL;
  1147. _n=X776to_string((((T892*)C))->_name/*16*/);
  1148. C->_arguments=(((T679*)((T679*)((((T892*)C))->_base_feature/*48*/))))->_arguments/*24*/;
  1149. /*IF*/if ((((((T892*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T892*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
  1150. C->_arguments=r31to_runnable(((T31*)((((T892*)C))->_arguments/*20*/)),(((T892*)C))->_current_type/*4*/);
  1151. }
  1152. /*FI*//*IF*/if ((((T0*)ms52_473))==((void*)(_n))) {
  1153. _type_bit_ref=(((T892*)C))->_current_type/*4*/;
  1154. if(NULL!=(_type_bit_ref))switch(((T0*)_type_bit_ref)->id) {
  1155. case 963: 
  1156. break;
  1157. default:
  1158. _type_bit_ref=NULL;
  1159. };C->_result_type=(((T963*)((T963*)_type_bit_ref)))->_type_bit/*4*/;
  1160. }
  1161. else {
  1162. C->_result_type=X291to_runnable((((T679*)((T679*)((((T892*)C))->_base_feature/*48*/))))->_result_type/*12*/,(((T892*)C))->_current_type/*4*/);
  1163. }
  1164. /*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
  1165. C->_require_assertion=r679run_require((T0*)C);
  1166. }
  1167. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  1168. C->_ensure_assertion=r679run_ensure((T0*)C);
  1169. }
  1170. /*FI*//*IF*/if ((((T0*)ms139_473))==((void*)(_n))) {
  1171. _rf=r355get_copy(((T355*)(r892run_class(C))));
  1172. }
  1173.  else if ((((T0*)ms110_473))==((void*)(_n))) {
  1174. r355set_at_run_time(((T355*)(r491run_class(((T491*)(r892type_string()))))));
  1175. }
  1176.  else if ((((T0*)ms78_473))==((void*)(_n))) {
  1177. r355set_at_run_time(((T355*)(r491run_class(((T491*)(r892type_string()))))));
  1178. }
  1179.  else if ((((T0*)ms79_473))==((void*)(_n))) {
  1180. r355set_at_run_time(((T355*)(r491run_class(((T491*)(r892type_string()))))));
  1181. }
  1182. /*FI*/}
  1183. /*No:RUN_FEATURE_8.afd_check*/
  1184. T0* r796add_comment(T796* C,T0* a1){
  1185. T0* R=NULL;
  1186. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1187. R=(T0*)C;
  1188. }
  1189. else {
  1190. {T529*n=malloc(sizeof(*n));
  1191. *n=M529;
  1192. r529make(n,(T0*)C,a1);
  1193. R=(T0*)n;
  1194. }
  1195. }
  1196. /*FI*/return R;
  1197. }
  1198. int r796to_integer(T796* C){
  1199. int R=0;
  1200. r796error((((T796*)C))->_start_position/*16*/,((T0*)ms69_470));
  1201. return R;
  1202. }
  1203. int r796is_a(T796* C,T0* a1){
  1204. int R=0;
  1205. R=X291is_a(/*(IRF4.4run_type*/((T0*)((T284*)r796result_type()))/*)*/,X291run_type(X662result_type(a1)));
  1206. /*IF*/if (!(R)) {
  1207. r683add_position((((T796*)C))->_start_position/*16*/);
  1208. r796error(X662start_position(a1),((T0*)ms4_662));
  1209. }
  1210. /*FI*/return R;
  1211. }
  1212. /*No:E_VOID.is_current*/
  1213. /*No:E_VOID.mapping_c_arg*/
  1214. /*No:E_VOID.static_value*/
  1215. void r796make(T796* C,T0* a1){
  1216. C->_start_position=a1;
  1217. C->_to_string=((T0*)ms147_473);
  1218. }
  1219. /*No:E_VOID.mapping_c_target*/
  1220. /*No:E_VOID.to_string*/
  1221. /*No:E_VOID.fz_iinaiv*/
  1222. /*No:E_VOID.dca_inline_argument*/
  1223. /*No:E_VOID.start_position*/
  1224. /*No:E_VOID.compile_to_c*/
  1225. /*No:E_VOID.c_simple*/
  1226. T0* r796to_runnable(T796* C,T0* a1){
  1227. T0* R=NULL;
  1228. /*IF*/if (((((T796*)C))->_current_type/*8*/)==((void*)(NULL))) {
  1229. C->_current_type=a1;
  1230. R=(T0*)C;
  1231. }
  1232. else {
  1233. R=r796twin(C);
  1234. /*[IRF3.3set_current_type*/((((T796*)(((T796*)R))))->_current_type)=(a1);
  1235. /*]*/
  1236. }
  1237. /*FI*/return R;
  1238. }
  1239. int fBC796result_type=0;
  1240. T0*oBC796result_type=NULL;
  1241. T0* r796result_type(void){
  1242. if (fBC796result_type==0){
  1243. T0* R=NULL;
  1244. fBC796result_type=1;
  1245. {T284*n=malloc(sizeof(*n));
  1246. *n=M284;
  1247. r284make(n,NULL);
  1248. R=(T0*)n;
  1249. }
  1250. oBC796result_type=R;}
  1251. return oBC796result_type;}
  1252. /*No:E_VOID.is_result*/
  1253. T0* r796twin(T796* C){
  1254. T0* R=NULL;
  1255. R=malloc(sizeof(*C));
  1256. *((T796*)R)=*C;
  1257. return R;
  1258. }
  1259. /*No:E_VOID.set_current_type*/
  1260. /*No:E_VOID.is_static*/
  1261. /*No:E_VOID.can_be_dropped*/
  1262. /*No:E_VOID.current_type*/
  1263. /*No:E_VOID.compile_to_c_old*/
  1264. /*No:E_VOID.static_value_mem*/
  1265. /*No:E_VOID.is_manifest_string*/
  1266. /*No:E_VOID.is_void*/
  1267. /*No:E_VOID.is_pre_computable*/
  1268. /*No:E_VOID.use_current*/
  1269. /*No:E_VOID.us_void*/
  1270. void r796error(T0* a1,T0* a2){
  1271. r683add_position(a1);
  1272. r683error(((T683*)(oBC364eh)),a2);
  1273. }
  1274. /*No:E_VOID.isa_dca_inline_argument*/
  1275. /*No:E_VOID.afd_check*/
  1276. void r404check_creation_clause(T404* C,T0* a1){
  1277. T0* _args=NULL;
  1278. T0* _top=NULL;
  1279. T0* _bottom=NULL;
  1280. T0* _fn=NULL;
  1281. _fn=/*X173*/((T0*)(((T268*)((T268*)((((T404*)C))->_call/*20*/))))->_feature_name/*12*/);
  1282. /*IF*/if (X291is_like_current(a1)) {
  1283. _top=r627base_class(((T627*)(X776start_position(_fn))));
  1284. _bottom=X291base_class(a1);
  1285. _fn=r605new_name_of(((T605*)_bottom),_top,_fn);
  1286. /*IF*/if ((_fn)==((void*)(NULL))) {
  1287. _fn=/*X173*/((T0*)(((T268*)((T268*)((((T404*)C))->_call/*20*/))))->_feature_name/*12*/);
  1288. r683add_position(X776start_position(_fn));
  1289. /*[IRF3.6append*/{T0* b1=((T0*)ms143_470);
  1290. r7append(((T7*)(oBC683explanation)),b1);
  1291. }/*]*/
  1292. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  1293. r7append(((T7*)(oBC683explanation)),b1);
  1294. }/*]*/
  1295. /*[IRF3.6append*/{T0* b1=((T0*)ms1_394);
  1296. r7append(((T7*)(oBC683explanation)),b1);
  1297. }/*]*/
  1298. /*[IRF3.6append*/{T0* b1=X291run_time_mark(a1);
  1299. r7append(((T7*)(oBC683explanation)),b1);
  1300. }/*]*/
  1301. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms137_470);
  1302. r683fatal_error(((T683*)(oBC364eh)),b1);
  1303. }/*]*/
  1304. }
  1305. /*FI*/}
  1306. /*FI*/C->_run_feature=r355get_feature(((T355*)(X291run_class(a1))),_fn);
  1307. /*IF*/if (((((T404*)C))->_run_feature/*16*/)==((void*)(NULL))) {
  1308. r404cp_not_found(C,_fn);
  1309. }
  1310. /*FI*//*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
  1311. }
  1312.  else if (!(X291has_creation(a1,_fn))) {
  1313. r683add_position(X776start_position(/*X173*/((T0*)(((T268*)((T268*)((((T404*)C))->_call/*20*/))))->_feature_name/*12*/)));
  1314. r683add_position(X776start_position(_fn));
  1315. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  1316. r7append(((T7*)(oBC683explanation)),b1);
  1317. }/*]*/
  1318. /*[IRF3.6append*/{T0* b1=((T0*)ms2_394);
  1319. r7append(((T7*)(oBC683explanation)),b1);
  1320. }/*]*/
  1321. r683add_type(a1,((T0*)ms67_470));
  1322. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1323. }
  1324. /*FI*/X496add_client((((T404*)C))->_run_feature/*16*/,r592run_class(((T592*)((((T404*)C))->_run_compound/*4*/))));
  1325. /*IF*/if ((/*X496*/((T0*)(((T832*)((T832*)((((T404*)C))->_run_feature/*16*/))))->_result_type/*24*/))!=((void*)(NULL))) {
  1326. r683add_position(X496start_position((((T404*)C))->_run_feature/*16*/));
  1327. r683add_position(X776start_position(_fn));
  1328. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_394);
  1329. r683fatal_error(((T683*)(oBC364eh)),b1);
  1330. }/*]*/
  1331. }
  1332. /*FI*//*IF*/if (((r404arg_count(C))==(0))&&((/*X496*/((T0*)(((T832*)((T832*)((((T404*)C))->_run_feature/*16*/))))->_arguments/*20*/))!=((void*)(NULL)))) {
  1333. r683add_position(X496start_position((((T404*)C))->_run_feature/*16*/));
  1334. r683add_position((((T404*)C))->_start_position/*8*/);
  1335. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms4_394);
  1336. r683fatal_error(((T683*)(oBC364eh)),b1);
  1337. }/*]*/
  1338. }
  1339. /*FI*//*IF*/if ((r404arg_count(C))>(0)) {
  1340. _args=X431to_runnable(X173arguments((((T404*)C))->_call/*20*/),r404current_type(C));
  1341. /*IF*/if ((_args)==((void*)(NULL))) {
  1342. r404error(X431start_position(X173arguments((((T404*)C))->_call/*20*/)),((T0*)ms56_470));
  1343. }
  1344. else {
  1345. X431match_with(_args,(((T404*)C))->_run_feature/*16*/);
  1346. }
  1347. /*FI*/}
  1348. /*FI*/C->_call=X173make_runnable((((T404*)C))->_call/*20*/,(((T404*)C))->_run_compound/*4*/,(((T404*)C))->_writable/*12*/,_args,(((T404*)C))->_run_feature/*16*/);
  1349. }
  1350. T0* r404add_comment(T404* C,T0* a1){
  1351. T0* R=NULL;
  1352. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1353. R=(T0*)C;
  1354. }
  1355. /*AF*/else {
  1356. {T46*n=malloc(sizeof(*n));
  1357. *n=M46;
  1358. r46make(n,(T0*)C,a1);
  1359. R=(T0*)n;
  1360. }
  1361. }
  1362. /*FI*/return R;
  1363. }
  1364. void r404check_created_type(T404* C,T0* a1){
  1365. T0* _rt=NULL;
  1366. _rt=X291run_type(a1);
  1367. /*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
  1368. }
  1369.  else if ((((T605*)((T605*)(X291base_class(_rt)))))->_is_deferred/*16*/) {
  1370. r683add_type(_rt,((T0*)ms2_747));
  1371. r683add_position((((T404*)C))->_start_position/*8*/);
  1372. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_747);
  1373. r683fatal_error(((T683*)(oBC364eh)),b1);
  1374. }/*]*/
  1375. }
  1376. /*FI*//*IF*/if (X291is_formal_generic(a1)) {
  1377. r683add_position((((T404*)C))->_start_position/*8*/);
  1378. /*[IRF3.6append*/{T0* b1=((T0*)ms4_747);
  1379. r7append(((T7*)(oBC683explanation)),b1);
  1380. }/*]*/
  1381. r683add_type(a1,((T0*)ms5_747));
  1382. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1383. }
  1384. /*FI*/r355set_at_run_time(((T355*)(X291run_class(_rt))));
  1385. }
  1386. void r404cp_not_found(T404* C,T0* a1){
  1387. r683add_position(X776start_position(/*X173*/((T0*)(((T268*)((T268*)((((T404*)C))->_call/*20*/))))->_feature_name/*12*/)));
  1388. r683add_position(X776start_position(a1));
  1389. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms5_394);
  1390. r683fatal_error(((T683*)(oBC364eh)),b1);
  1391. }/*]*/
  1392. }
  1393. /*No:CREATION_CALL_4.writable*/
  1394. /*No:CREATION_CALL_4.us_dictionary*/
  1395. /*No:CREATION_CALL_4.us_with_capacity*/
  1396. /*No:CREATION_CALL_4.fz_bad_arguments*/
  1397. /*No:CREATION_CALL_4.us_array*/
  1398. void r404make(T404* C,T0* a1,T0* a2,T0* a3,T0* a4){
  1399. C->_start_position=a1;
  1400. C->_type=a2;
  1401. C->_writable=a3;
  1402. C->_call=a4;
  1403. }
  1404. T0* r404run_args(T404* C){
  1405. T0* R=NULL;
  1406. R=X173arguments((((T404*)C))->_call/*20*/);
  1407. return R;
  1408. }
  1409. /*No:CREATION_CALL_4.type*/
  1410. /*No:CREATION_CALL_4.us_string*/
  1411. int r404arg_count(T404* C){
  1412. int R=0;
  1413. /*IF*/if (((((T404*)C))->_call/*20*/)!=((void*)(NULL))) {
  1414. R=X173arg_count((((T404*)C))->_call/*20*/);
  1415. }
  1416. /*FI*/return R;
  1417. }
  1418. void r404c2c_closing(T404* C,T0* a1){
  1419. X662compile_to_c((((T404*)C))->_writable/*12*/);
  1420. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1421. char b1='\75';
  1422. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1423. }/*]*/
  1424. /*]*/
  1425. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms85_470));
  1426. /*]*/
  1427. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1428. char b1='n';
  1429. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1430. }/*]*/
  1431. /*]*/
  1432. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms134_470));
  1433. /*]*/
  1434. /*IF*/if (r324call_invariant_start(a1)) {
  1435. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1436. char b1='n';
  1437. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1438. }/*]*/
  1439. /*]*/
  1440. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
  1441. char b1='\51';
  1442. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1443. }/*]*/
  1444. /*]*/
  1445. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1446. char b1='\73';
  1447. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1448. }/*]*/
  1449. /*]*/
  1450. }
  1451. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1452. char b1='\175';
  1453. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1454. }/*]*/
  1455. /*]*/
  1456. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1457. char b1='\n';
  1458. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1459. }/*]*/
  1460. /*]*/
  1461. r324rs_pop_position(((T324*)(oBC364cpp)));
  1462. }
  1463. void r404c2c_clear_expanded(T404* C,int a1){
  1464. X662compile_to_c((((T404*)C))->_writable/*12*/);
  1465. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1466. char b1='\75';
  1467. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1468. }/*]*/
  1469. /*]*/
  1470. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1471. char b1='M';
  1472. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1473. }/*]*/
  1474. /*]*/
  1475. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),a1);
  1476. /*]*/
  1477. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms134_470));
  1478. /*]*/
  1479. }
  1480. /*No:CREATION_CALL_4.call*/
  1481. /*No:CREATION_CALL_4.run_feature*/
  1482. /*No:CREATION_CALL_4.start_position*/
  1483. void r404c2c_expanded_initializer(T404* C,T0* a1){
  1484. T0* _rf3=NULL;
  1485. _rf3=X291expanded_initializer(a1);
  1486. /*IF*/if ((_rf3)!=((void*)(NULL))) {
  1487. r324expanded_writable(((T324*)(oBC364cpp)),_rf3,(((T404*)C))->_writable/*12*/);
  1488. }
  1489. /*FI*/}
  1490. /*No:CREATION_CALL_4.us_blank*/
  1491. void r404compile_to_c(T404* C){
  1492. /*IF*/if (X291is_reference((((T404*)C))->_type/*24*/)) {
  1493. r404c2c_opening(C,(((T404*)C))->_type/*24*/);
  1494. r324push_new(((T324*)(oBC364cpp)),(((T404*)C))->_run_feature/*16*/,r404run_args(C));
  1495. X496mapping_c((((T404*)C))->_run_feature/*16*/);
  1496. r324pop(((T324*)(oBC364cpp)));
  1497. r404c2c_closing(C,(((T404*)C))->_type/*24*/);
  1498. }
  1499. else {
  1500. r404c2c_clear_expanded(C,X291id((((T404*)C))->_type/*24*/));
  1501. r404c2c_expanded_initializer(C,(((T404*)C))->_type/*24*/);
  1502. }
  1503. /*FI*/}
  1504. /*No:CREATION_CALL_4.fz_00*/
  1505. T0* r404to_runnable(T404* C,T0* a1){
  1506. T0* R=NULL;
  1507. /*IF*/if (((((T404*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  1508. r404check_writable(C,a1);
  1509. r404check_explicit_type(C);
  1510. r404check_created_type(C,(((T404*)C))->_type/*24*/);
  1511. r404check_creation_clause(C,(((T404*)C))->_type/*24*/);
  1512. R=(T0*)C;
  1513. }
  1514. else {
  1515. {T404*n=malloc(sizeof(*n));
  1516. *n=M404;
  1517. r404make(n,(((T404*)C))->_start_position/*8*/,(((T404*)C))->_type/*24*/,(((T404*)C))->_writable/*12*/,(((T404*)C))->_call/*20*/);
  1518. R=(T0*)n;
  1519. }
  1520. R=r404to_runnable(((T404*)R),a1);
  1521. }
  1522. /*FI*/return R;
  1523. }
  1524. /*No:CREATION_CALL_4.us_std_file_read*/
  1525. /*No:CREATION_CALL_4.fz_03*/
  1526. /*No:CREATION_CALL_4.us_make*/
  1527. T0* r404current_type(T404* C){
  1528. T0* R=NULL;
  1529. /*IF*/if (((((T404*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  1530. R=(((T592*)((T592*)((((T404*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  1531. }
  1532. /*FI*/return R;
  1533. }
  1534. void r404c2c_opening(T404* C,T0* a1){
  1535. T0* _rc=NULL;
  1536. _rc=X291run_class(a1);
  1537. r324rs_push_position(((T324*)(oBC364cpp)),'5',(((T404*)C))->_start_position/*8*/);
  1538. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1539. char b1='\173';
  1540. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1541. }/*]*/
  1542. /*]*/
  1543. r548put_new(((T548*)(oBC364gc_handler)),_rc);
  1544. r324expanded_attributes(((T324*)(oBC364cpp)),a1);
  1545. }
  1546. /*No:CREATION_CALL_4.fz_09*/
  1547. /*No:CREATION_CALL_4.run_compound*/
  1548. void r404check_explicit_type(T404* C){
  1549. T0* _t=NULL;
  1550. _t=X291to_runnable((((T404*)C))->_type/*24*/,r404current_type(C));
  1551. /*IF*/if (((_t)==((void*)(NULL)))||(!(X291is_run_type(_t)))) {
  1552. r683add_position(X291start_position((((T404*)C))->_type/*24*/));
  1553. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_432);
  1554. r683fatal_error(((T683*)(oBC364eh)),b1);
  1555. }/*]*/
  1556. }
  1557. else {
  1558. C->_type=_t;
  1559. }
  1560. /*FI*//*IF*/if (!(X291is_a((((T404*)C))->_type/*24*/,X662result_type((((T404*)C))->_writable/*12*/)))) {
  1561. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_432);
  1562. r683fatal_error(((T683*)(oBC364eh)),b1);
  1563. }/*]*/
  1564. }
  1565. /*FI*/}
  1566. /*No:CREATION_CALL_4.fz_dot*/
  1567. int r404is_pre_computable(T404* C){
  1568. int R=0;
  1569. T0* _rfctbcn=NULL;
  1570. T0* _rfn=NULL;
  1571. T0* _rfct=NULL;
  1572. /*IF*/if (X662is_result((((T404*)C))->_writable/*12*/)) {
  1573. /*IF*/if ((r404run_args(C))==((void*)(NULL))) {
  1574. R=1;
  1575. }
  1576. else {
  1577. R=X431is_pre_computable(r404run_args(C));
  1578. }
  1579. /*FI*//*IF*/if (R) {
  1580. /*IF*/if (X496is_pre_computable((((T404*)C))->_run_feature/*16*/)) {
  1581. R=1;
  1582. }
  1583. else {
  1584. _rfct=/*X496*/((T0*)(((T832*)((T832*)((((T404*)C))->_run_feature/*16*/))))->_current_type/*4*/);
  1585. _rfctbcn=(((T451*)((T451*)((((T605*)((T605*)(X291base_class(_rfct)))))->_base_class_name/*24*/))))->_to_string/*0*/;
  1586. _rfn=X776to_string(/*X496*/((T0*)(((T832*)((T832*)((((T404*)C))->_run_feature/*16*/))))->_name/*16*/));
  1587. /*IF*/if ((((T0*)ms89_473))==((void*)(_rfn))) {
  1588. R=r52has(((T52*)(oBC394make_precomputable)),_rfctbcn);
  1589. }
  1590.  else if ((((T0*)ms51_473))==((void*)(_rfn))) {
  1591. R=(((T0*)ms25_473))==((void*)(_rfctbcn));
  1592. }
  1593.  else if ((((T0*)ms141_473))==((void*)(_rfn))) {
  1594. /*IF*/if ((((T0*)ms2_473))==((void*)(_rfctbcn))) {
  1595. R=1;
  1596. }
  1597.  else if ((((T0*)ms13_473))==((void*)(_rfctbcn))) {
  1598. R=1;
  1599. }
  1600.  else if ((((T0*)ms10_473))==((void*)(_rfctbcn))) {
  1601. R=1;
  1602. }
  1603. else {
  1604. R=0;
  1605. }
  1606. /*FI*/}
  1607. /*FI*/}
  1608. /*FI*/}
  1609. /*FI*/}
  1610. /*FI*/return R;
  1611. }
  1612. /*No:CREATION_CALL_4.fz_cast_t0_star*/
  1613. int r404use_current(T404* C){
  1614. int R=0;
  1615. /*IF*/if ((r404run_args(C))!=((void*)(NULL))) {
  1616. R=X431use_current(r404run_args(C));
  1617. }
  1618. /*FI*/R=(R)||(X662use_current((((T404*)C))->_writable/*12*/));
  1619. return R;
  1620. }
  1621. void r404check_writable(T404* C,T0* a1){
  1622. T0* _w=NULL;
  1623. C->_run_compound=a1;
  1624. _w=X662to_runnable((((T404*)C))->_writable/*12*/,r404current_type(C));
  1625. /*IF*/if ((_w)==((void*)(NULL))) {
  1626. r683add_position(X662start_position((((T404*)C))->_writable/*12*/));
  1627. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_747);
  1628. r683fatal_error(((T683*)(oBC364eh)),b1);
  1629. }/*]*/
  1630. }
  1631. else {
  1632. C->_writable=_w;
  1633. }
  1634. /*FI*/}
  1635. void r404error(T0* a1,T0* a2){
  1636. r683add_position(a1);
  1637. r683error(((T683*)(oBC364eh)),a2);
  1638. }
  1639. /*No:CREATION_CALL_4.fatal_error*/
  1640. /*No:CREATION_CALL_4.end_mark_comment*/
  1641. /*No:CREATION_CALL_4.us_fixed_array*/
  1642. void r404afd_check(T404* C){
  1643. /*IF*/if ((r404arg_count(C))>(0)) {
  1644. X431afd_check(r404run_args(C));
  1645. }
  1646. /*FI*/}
  1647. /*No:CALL_INFIX_INT_REM.arguments*/
  1648. T0* r453add_comment(T453* C,T0* a1){
  1649. T0* R=NULL;
  1650. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1651. R=(T0*)C;
  1652. }
  1653. else {
  1654. {T529*n=malloc(sizeof(*n));
  1655. *n=M529;
  1656. r529make(n,(T0*)C,a1);
  1657. R=(T0*)n;
  1658. }
  1659. }
  1660. /*FI*/return R;
  1661. }
  1662. int r453to_integer(T453* C){
  1663. int R=0;
  1664. r453error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T453*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  1665. return R;
  1666. }
  1667. int r453is_a(T453* C,T0* a1){
  1668. int R=0;
  1669. R=X291is_a(X291run_type((((T453*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  1670. /*IF*/if (!(R)) {
  1671. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T453*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  1672. r453error(X662start_position(a1),((T0*)ms4_662));
  1673. }
  1674. /*FI*/return R;
  1675. }
  1676. /*No:CALL_INFIX_INT_REM.is_current*/
  1677. void r453mapping_c_arg(T453* C,T0* a1){
  1678. T0* _actual_type=NULL;
  1679. _actual_type=X291run_type((((T453*)C))->_result_type/*20*/);
  1680. /*IF*/if (X291is_reference(_actual_type)) {
  1681. /*IF*/if (X291is_reference(a1)) {
  1682. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T453* C1=C;
  1683. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  1684. }/*]*/
  1685. /*]*/
  1686. }
  1687. else {
  1688. X291to_expanded(_actual_type);
  1689. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1690. char b1='\50';
  1691. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1692. }/*]*/
  1693. /*]*/
  1694. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T453* C1=C;
  1695. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  1696. }/*]*/
  1697. /*]*/
  1698. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1699. char b1='\51';
  1700. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1701. }/*]*/
  1702. /*]*/
  1703. }
  1704. /*FI*/}
  1705. else {
  1706. /*IF*/if (X291is_reference(a1)) {
  1707. X291to_reference(_actual_type);
  1708. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1709. char b1='\50';
  1710. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1711. }/*]*/
  1712. /*]*/
  1713. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T453* C1=C;
  1714. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  1715. }/*]*/
  1716. /*]*/
  1717. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1718. char b1='\51';
  1719. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1720. }/*]*/
  1721. /*]*/
  1722. }
  1723. else {
  1724. /*IF*/if (X291need_c_struct(a1)) {
  1725. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1726. char b1='\46';
  1727. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1728. }/*]*/
  1729. /*]*/
  1730. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1731. char b1='\50';
  1732. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1733. }/*]*/
  1734. /*]*/
  1735. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T453* C1=C;
  1736. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  1737. }/*]*/
  1738. /*]*/
  1739. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1740. char b1='\51';
  1741. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1742. }/*]*/
  1743. /*]*/
  1744. }
  1745. else {
  1746. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T453* C1=C;
  1747. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  1748. }/*]*/
  1749. /*]*/
  1750. }
  1751. /*FI*/}
  1752. /*FI*/}
  1753. /*FI*/}
  1754. /*No:CALL_INFIX_INT_REM.static_value*/
  1755. void r453make(T453* C,T0* a1,T0* a2,T0* a3){
  1756. T0* _eal=NULL;
  1757. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  1758. r683add_position(a2);
  1759. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  1760. r683fatal_error(((T683*)(oBC364eh)),b1);
  1761. }/*]*/
  1762. }
  1763. /*FI*/{T454*n=malloc(sizeof(*n));
  1764. *n=M454;
  1765. r454make(n,((T0*)ms1_453),a2);
  1766. C->_feature_name=(T0*)n;
  1767. }
  1768. {T431*n=malloc(sizeof(*n));
  1769. *n=M431;
  1770. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  1771. /*]*/
  1772. _eal=(T0*)n;
  1773. }
  1774. r453make_call_1(C,a1,(((T453*)C))->_feature_name/*28*/,_eal);
  1775. }
  1776. void r453mapping_c_target(T453* C,T0* a1){
  1777. T0* _actual_type=NULL;
  1778. int _flag=0;
  1779. _flag=r324call_invariant_start(a1);
  1780. _actual_type=X291run_type((((T453*)C))->_result_type/*20*/);
  1781. /*IF*/if (X291is_reference(_actual_type)) {
  1782. /*IF*/if (X291is_reference(a1)) {
  1783. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1784. char b1='\50';
  1785. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1786. }/*]*/
  1787. /*]*/
  1788. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1789. char b1='\50';
  1790. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1791. }/*]*/
  1792. /*]*/
  1793. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1794. char b1='T';
  1795. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1796. }/*]*/
  1797. /*]*/
  1798. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291id(a1));
  1799. /*]*/
  1800. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1801. char b1='\52';
  1802. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1803. }/*]*/
  1804. /*]*/
  1805. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1806. char b1='\51';
  1807. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1808. }/*]*/
  1809. /*]*/
  1810. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1811. char b1='\50';
  1812. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1813. }/*]*/
  1814. /*]*/
  1815. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T453* C1=C;
  1816. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  1817. }/*]*/
  1818. /*]*/
  1819. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1820. char b1='\51';
  1821. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1822. }/*]*/
  1823. /*]*/
  1824. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1825. char b1='\51';
  1826. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1827. }/*]*/
  1828. /*]*/
  1829. }
  1830. else {
  1831. X291to_expanded(_actual_type);
  1832. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1833. char b1='\50';
  1834. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1835. }/*]*/
  1836. /*]*/
  1837. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T453* C1=C;
  1838. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  1839. }/*]*/
  1840. /*]*/
  1841. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1842. char b1='\51';
  1843. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1844. }/*]*/
  1845. /*]*/
  1846. }
  1847. /*FI*/}
  1848. else {
  1849. /*IF*/if (X291is_reference(a1)) {
  1850. X291to_reference(_actual_type);
  1851. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1852. char b1='\50';
  1853. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1854. }/*]*/
  1855. /*]*/
  1856. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T453* C1=C;
  1857. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  1858. }/*]*/
  1859. /*]*/
  1860. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1861. char b1='\51';
  1862. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1863. }/*]*/
  1864. /*]*/
  1865. }
  1866. else {
  1867. /*IF*/if (X291need_c_struct(a1)) {
  1868. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1869. char b1='\46';
  1870. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1871. }/*]*/
  1872. /*]*/
  1873. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1874. char b1='\50';
  1875. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1876. }/*]*/
  1877. /*]*/
  1878. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T453* C1=C;
  1879. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  1880. }/*]*/
  1881. /*]*/
  1882. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1883. char b1='\51';
  1884. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1885. }/*]*/
  1886. /*]*/
  1887. }
  1888. else {
  1889. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T453* C1=C;
  1890. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  1891. }/*]*/
  1892. /*]*/
  1893. }
  1894. /*FI*/}
  1895. /*FI*/}
  1896. /*FI*//*IF*/if (_flag) {
  1897. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
  1898. char b1='\51';
  1899. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1900. }/*]*/
  1901. /*]*/
  1902. }
  1903. /*FI*/}
  1904. /*No:CALL_INFIX_INT_REM.nb_errors*/
  1905. /*No:CALL_INFIX_INT_REM.feature_name*/
  1906. /*No:CALL_INFIX_INT_REM.fz_iinaiv*/
  1907. /*No:CALL_INFIX_INT_REM.arg_count*/
  1908. /*No:CALL_INFIX_INT_REM.dca_inline_argument*/
  1909. /*No:CALL_INFIX_INT_REM.run_feature*/
  1910. /*No:CALL_INFIX_INT_REM.call_proc_call_c2c*/
  1911. /*No:CALL_INFIX_INT_REM.start_position*/
  1912. /*No:CALL_INFIX_INT_REM.target*/
  1913. /*No:CALL_INFIX_INT_REM.compile_to_c*/
  1914. /*No:CALL_INFIX_INT_REM.c_simple*/
  1915. T0* r453to_runnable(T453* C,T0* a1){
  1916. T0* R=NULL;
  1917. T0* _tla=NULL;
  1918. T0* _a=NULL;
  1919. /*IF*/if (((((T453*)C))->_current_type/*8*/)==((void*)(NULL))) {
  1920. r453to_runnable_0(C,a1);
  1921. _a=X431to_runnable((((T453*)C))->_arguments/*24*/,a1);
  1922. /*IF*/if ((_a)==((void*)(NULL))) {
  1923. r453error(X662start_position(r453arg1(C)),((T0*)ms55_470));
  1924. }
  1925. else {
  1926. C->_arguments=_a;
  1927. }
  1928. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1929. X431match_with((((T453*)C))->_arguments/*24*/,(((T453*)C))->_run_feature/*16*/);
  1930. }
  1931. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1932. _tla=(((T453*)C))->_result_type/*20*/;
  1933. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1934. case 239: 
  1935. break;
  1936. default:
  1937. _tla=NULL;
  1938. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  1939. C->_result_type=X291run_type(X662result_type(r453arg1(C)));
  1940. }
  1941. /*FI*/}
  1942. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1943. R=(T0*)C;
  1944. }
  1945. /*FI*/}
  1946. else {
  1947. R=r453twin(C);
  1948. /*[IRF3.3set_current_type*/((((T453*)(((T453*)R))))->_current_type)=(NULL);
  1949. /*]*/
  1950. R=r453to_runnable(((T453*)R),a1);
  1951. }
  1952. /*FI*/return R;
  1953. }
  1954. /*No:CALL_INFIX_INT_REM.result_type*/
  1955. /*No:CALL_INFIX_INT_REM.is_result*/
  1956. T0* r453twin(T453* C){
  1957. T0* R=NULL;
  1958. R=malloc(sizeof(*C));
  1959. *((T453*)R)=*C;
  1960. return R;
  1961. }
  1962. /*No:CALL_INFIX_INT_REM.set_current_type*/
  1963. /*No:CALL_INFIX_INT_REM.operator*/
  1964. int r453is_static(T453* C){
  1965. int R=0;
  1966. /*IF*/if (X291is_integer((((T453*)C))->_result_type/*20*/)) {
  1967. /*IF*/if ((X662is_static((((T453*)C))->_target/*12*/))&&(X662is_static(r453arg1(C)))) {
  1968. R=1;
  1969. C->_static_value_mem=(X662static_value((((T453*)C))->_target/*12*/))%(X662static_value(r453arg1(C)));
  1970. }
  1971. /*FI*/}
  1972. /*FI*/return R;
  1973. }
  1974. /*No:CALL_INFIX_INT_REM.fz_07*/
  1975. /*No:CALL_INFIX_INT_REM.can_be_dropped*/
  1976. /*No:CALL_INFIX_INT_REM.current_type*/
  1977. void r453compile_to_c_old(T453* C){
  1978. X662compile_to_c_old((((T453*)C))->_target/*12*/);
  1979. /*IF*/{/*AT*/X431compile_to_c_old((((T453*)C))->_arguments/*24*/);
  1980. }
  1981. /*FI*/}
  1982. /*No:CALL_INFIX_INT_REM.static_value_mem*/
  1983. void r453make_call_1(T453* C,T0* a1,T0* a2,T0* a3){
  1984. C->_target=a1;
  1985. C->_feature_name=a2;
  1986. C->_arguments=a3;
  1987. }
  1988. /*No:CALL_INFIX_INT_REM.is_manifest_string*/
  1989. /*No:CALL_INFIX_INT_REM.is_void*/
  1990. void r453to_runnable_0(T453* C,T0* a1){
  1991. C->_current_type=a1;
  1992. r453cpc_to_runnable(C,a1);
  1993. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T453*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  1994. /*IF*/if (((((T453*)C))->_result_type/*20*/)==((void*)(NULL))) {
  1995. r683add_position(X496start_position((((T453*)C))->_run_feature/*16*/));
  1996. r453error((((T454*)((T454*)((((T453*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
  1997. }
  1998.  else if (X291is_like_current((((T453*)C))->_result_type/*20*/)) {
  1999. C->_result_type=X662result_type((((T453*)C))->_target/*12*/);
  2000. }
  2001. /*FI*/}
  2002. /*No:CALL_INFIX_INT_REM.is_pre_computable*/
  2003. void r453cpc_to_runnable(T453* C,T0* a1){
  2004. T0* _rc=NULL;
  2005. T0* _t=NULL;
  2006. _t=X662to_runnable((((T453*)C))->_target/*12*/,a1);
  2007. /*IF*/if ((_t)==((void*)(NULL))) {
  2008. r683add_position(X662start_position((((T453*)C))->_target/*12*/));
  2009. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  2010. r683fatal_error(((T683*)(oBC364eh)),b1);
  2011. }/*]*/
  2012. }
  2013. /*FI*/C->_target=_t;
  2014. _rc=X291run_class(X662result_type((((T453*)C))->_target/*12*/));
  2015. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  2016. r576update((((T453*)C))->_target/*12*/,(((T453*)C))->_run_feature/*16*/);
  2017. }
  2018. int r453use_current(T453* C){
  2019. int R=0;
  2020. /*IF*/{/*AT*/R=X431use_current((((T453*)C))->_arguments/*24*/);
  2021. }
  2022. /*FI*//*IF*/if (R) {
  2023. }
  2024.  else if (X662is_current((((T453*)C))->_target/*12*/)) {
  2025. R=X496use_current((((T453*)C))->_run_feature/*16*/);
  2026. }
  2027. else {
  2028. R=X662use_current((((T453*)C))->_target/*12*/);
  2029. }
  2030. /*FI*/return R;
  2031. }
  2032. void r453finalize(T453* C){
  2033. T0* _rf=NULL;
  2034. T0* _rc=NULL;
  2035. _rf=(((T453*)C))->_run_feature/*16*/;
  2036. _rc=X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_current_type/*4*/));
  2037. /*IF*/if (!((((T355*)((T355*)_rc)))->_at_run_time/*8*/)) {
  2038. _rf=r355dynamic(((T355*)(r396first(((T396*)((((T355*)((T355*)_rc)))->_running/*12*/))))),_rf);
  2039. C->_run_feature=_rf;
  2040. }
  2041. /*FI*/}
  2042. void r453error(T0* a1,T0* a2){
  2043. r683add_position(a1);
  2044. r683error(((T683*)(oBC364eh)),a2);
  2045. }
  2046. /*No:CALL_INFIX_INT_REM.isa_dca_inline_argument*/
  2047. /*No:CALL_INFIX_INT_REM.fatal_error*/
  2048. /*No:CALL_INFIX_INT_REM.fz_bad_argument*/
  2049. T0* r453arg1(T453* C){
  2050. T0* R=NULL;
  2051. R=X431first((((T453*)C))->_arguments/*24*/);
  2052. return R;
  2053. }
  2054. void r453afd_check(T453* C){
  2055. T0* _running=NULL;
  2056. T0* _rc=NULL;
  2057. _rc=X291run_class(X662result_type((((T453*)C))->_target/*12*/));
  2058. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  2059. /*IF*/if ((_running)==((void*)(NULL))) {
  2060. r683add_position(X662start_position((((T453*)C))->_target/*12*/));
  2061. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  2062. r7append(((T7*)(oBC683explanation)),b1);
  2063. }/*]*/
  2064. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  2065. r7append(((T7*)(oBC683explanation)),b1);
  2066. }/*]*/
  2067. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  2068. r7append(((T7*)(oBC683explanation)),b1);
  2069. }/*]*/
  2070. r683print_as_warning(((T683*)(oBC364eh)));
  2071. r355set_at_run_time(((T355*)_rc));
  2072. }
  2073.  else if ((r396count(((T396*)_running)))>(0)) {
  2074. r576update((((T453*)C))->_target/*12*/,(((T453*)C))->_run_feature/*16*/);
  2075. }
  2076. /*FI*/X662afd_check((((T453*)C))->_target/*12*/);
  2077. /*IF*/{/*AT*/X431afd_check((((T453*)C))->_arguments/*24*/);
  2078. }
  2079. /*FI*/}
  2080. T0*oBC798ts=NULL;
  2081. void r798sort_running(T0* a1){
  2082. int _moved=0;
  2083. int _buble=0;
  2084. int _max=0;
  2085. int _min=0;
  2086. _max=(((T396*)((T396*)a1)))->_upper/*8*/;
  2087. _min=1;
  2088. _moved=1;
  2089. while (!(!(_moved))) {
  2090. _moved=0;
  2091. /*IF*/if (((_max)-(_min))>(0)) {
  2092. _buble=(_min)+(1);
  2093. while (!((_buble)>(_max))) {
  2094. /*IF*/if (((((T355*)((T355*)(r396item(((T396*)a1),(_buble)-(1))))))->_id/*4*/)>((((T355*)((T355*)(r396item(((T396*)a1),_buble)))))->_id/*4*/)) {
  2095. r396swap(((T396*)a1),(_buble)-(1),_buble);
  2096. _moved=1;
  2097. }
  2098. /*FI*/_buble=(_buble)+(1);
  2099. }
  2100. _max=(_max)-(1);
  2101. }
  2102. /*FI*//*IF*/if ((_moved)&&(((_max)-(_min))>(0))) {
  2103. _moved=0;
  2104. _buble=(_max)-(1);
  2105. while (!((_buble)<(_min))) {
  2106. /*IF*/if (((((T355*)((T355*)(r396item(((T396*)a1),_buble)))))->_id/*4*/)>((((T355*)((T355*)(r396item(((T396*)a1),(_buble)+(1))))))->_id/*4*/)) {
  2107. r396swap(((T396*)a1),_buble,(_buble)+(1));
  2108. _moved=1;
  2109. }
  2110. /*FI*/_buble=(_buble)-(1);
  2111. }
  2112. _min=(_min)+(1);
  2113. }
  2114. /*FI*/}
  2115. }
  2116. T0*oBC798tmp_name=NULL;
  2117. T0*oBC798running=NULL;
  2118. void r798c_define(int C,T0* a1){
  2119. int _i=0;
  2120. T0* _t=NULL;
  2121. T0* _arguments=NULL;
  2122. int _boost=0;
  2123. _boost=r590boost(((T590*)(oBC364run_control)));
  2124. _arguments=/*X496*/((T0*)(((T832*)((T832*)a1)))->_arguments/*20*/);
  2125. _t=/*X496*/((T0*)(((T832*)((T832*)a1)))->_result_type/*24*/);
  2126. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC798ts)))))->_count)=(0);
  2127. /*]*/
  2128. /*IF*/if ((_t)==((void*)(NULL))) {
  2129. r7append(((T7*)(oBC798ts)),((T0*)ms133_470));
  2130. }
  2131. else {
  2132. _t=X291run_type(_t);
  2133. X291c_type_for_result_in(_t,oBC798ts);
  2134. }
  2135. /*FI*/r7extend(((T7*)(oBC798ts)),'\40');
  2136. r7extend(((T7*)(oBC798ts)),'X');
  2137. r2append_in(X291id(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)),oBC798ts);
  2138. X776mapping_c_in(/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/),oBC798ts);
  2139. /*IF*/if (_boost) {
  2140. r7append(((T7*)(oBC798ts)),((T0*)ms1_798));
  2141. }
  2142. else {
  2143. r7append(((T7*)(oBC798ts)),((T0*)ms2_798));
  2144. }
  2145. /*FI*//*IF*/if ((_arguments)!=((void*)(NULL))) {
  2146. _i=1;
  2147. while (!((_i)>(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)_arguments)))->_flat_list/*12*/))))->_upper/*12*//*)*/))) {
  2148. r7extend(((T7*)(oBC798ts)),'\54');
  2149. _t=X291run_type(r31type(((T31*)_arguments),_i));
  2150. X291c_type_for_argument_in(_t,oBC798ts);
  2151. r7append(((T7*)(oBC798ts)),((T0*)ms3_798));
  2152. r2append_in(_i,oBC798ts);
  2153. _i=(_i)+(1);
  2154. }
  2155. }
  2156. /*FI*/r7extend(((T7*)(oBC798ts)),'\51');
  2157. r324put_c_heading(((T324*)(oBC364cpp)),oBC798ts);
  2158. /*[IRF3.3swap_on_c*/((((T324*)(((T324*)(oBC364cpp)))))->_current_out)=(oBC324out_c);
  2159. /*]*/
  2160. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms4_798));
  2161. /*]*/
  2162. r396copy(((T396*)(oBC798running)),(((T355*)((T355*)(X291run_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/))))))->_running/*12*/);
  2163. r798sort_running(oBC798running);
  2164. /*IF*/if (_boost) {
  2165. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms5_798));
  2166. /*]*/
  2167. }
  2168. else {
  2169. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms6_798));
  2170. /*]*/
  2171. }
  2172. /*FI*//*IF*/if (r590all_check(((T590*)(oBC364run_control)))) {
  2173. r798c_switch(a1);
  2174. }
  2175. else {
  2176. r798c_dicho(C,a1,1,(((T396*)((T396*)(oBC798running))))->_upper/*8*/);
  2177. }
  2178. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms146_470));
  2179. /*]*/
  2180. }
  2181. void r798tail_closing(T0* a1,T0* a2){
  2182. /*IF*/if ((a1)!=((void*)(NULL))) {
  2183. /*IF*/if ((X291is_expanded(a2))&&(X291is_reference(a1))) {
  2184. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2185. char b1='\51';
  2186. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2187. }/*]*/
  2188. /*]*/
  2189. }
  2190. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms150_470));
  2191. /*]*/
  2192. }
  2193. /*FI*/}
  2194. T0* r798name(T0* a1){
  2195. T0* R=NULL;
  2196. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC798tmp_name)))))->_count)=(0);
  2197. /*]*/
  2198. r7extend(((T7*)(oBC798tmp_name)),'X');
  2199. r2append_in(X291id(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)),oBC798tmp_name);
  2200. r7append(((T7*)(oBC798tmp_name)),X776to_key(/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/)));
  2201. R=oBC798tmp_name;
  2202. return R;
  2203. }
  2204. void r798c_switch(T0* a1){
  2205. T0* _dyn_rf=NULL;
  2206. T0* _dyn_rc=NULL;
  2207. int _i=0;
  2208. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms11_798));
  2209. /*]*/
  2210. _i=1;
  2211. while (!((_i)>((((T396*)((T396*)(oBC798running))))->_upper/*8*/))) {
  2212. _dyn_rc=r396item(((T396*)(oBC798running)),_i);
  2213. _dyn_rf=r355dynamic(((T355*)_dyn_rc),a1);
  2214. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms12_798));
  2215. /*]*/
  2216. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),(((T355*)((T355*)_dyn_rc)))->_id/*4*/);
  2217. /*]*/
  2218. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2219. char b1='\72';
  2220. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2221. }/*]*/
  2222. /*]*/
  2223. r798tail_opening(/*X496*/((T0*)(((T832*)((T832*)a1)))->_result_type/*24*/),/*X496*/((T0*)(((T832*)((T832*)_dyn_rf)))->_result_type/*24*/));
  2224. r324push_switch(((T324*)(oBC364cpp)),_dyn_rf,a1);
  2225. X496mapping_c(_dyn_rf);
  2226. r324pop(((T324*)(oBC364cpp)));
  2227. r798tail_closing(/*X496*/((T0*)(((T832*)((T832*)a1)))->_result_type/*24*/),/*X496*/((T0*)(((T832*)((T832*)_dyn_rf)))->_result_type/*24*/));
  2228. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms13_798));
  2229. /*]*/
  2230. _i=(_i)+(1);
  2231. }
  2232. /*IF*/if (r590no_check(((T590*)(oBC364run_control)))) {
  2233. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms14_798));
  2234. /*]*/
  2235. }
  2236. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms146_470));
  2237. /*]*/
  2238. }
  2239. void r798tail_opening(T0* a1,T0* a2){
  2240. /*IF*/if ((a1)!=((void*)(NULL))) {
  2241. r7copy(((T7*)(oBC798tmp_string)),((T0*)ms120_470));
  2242. r7extend(((T7*)(oBC798tmp_string)),'\50');
  2243. r7extend(((T7*)(oBC798tmp_string)),'\50');
  2244. X291c_type_for_result_in(a1,oBC798tmp_string);
  2245. r7extend(((T7*)(oBC798tmp_string)),'\51');
  2246. r7extend(((T7*)(oBC798tmp_string)),'\50');
  2247. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC798tmp_string);
  2248. /*]*/
  2249. /*IF*/if ((X291is_expanded(a2))&&(X291is_reference(a1))) {
  2250. X291to_reference(a2);
  2251. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2252. char b1='\50';
  2253. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2254. }/*]*/
  2255. /*]*/
  2256. }
  2257. /*FI*/}
  2258. /*FI*/}
  2259. void r798put_ith_argument(T0* a1,T0* a2,int a3){
  2260. T0* _ft=NULL;
  2261. T0* _at=NULL;
  2262. T0* _eal=NULL;
  2263. _eal=/*X496*/((T0*)(((T832*)((T832*)a1)))->_arguments/*20*/);
  2264. _at=X291run_type(r31type(((T31*)_eal),a3));
  2265. _ft=X291run_type(r31type(((T31*)a2),a3));
  2266. /*IF*/if ((X291is_reference(_at))&&(X291is_basic_eiffel_expanded(_ft))) {
  2267. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2268. char b1='\50';
  2269. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2270. }/*]*/
  2271. /*]*/
  2272. X291cast_to_ref(_ft);
  2273. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2274. char b1='a';
  2275. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2276. }/*]*/
  2277. /*]*/
  2278. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),a3);
  2279. /*]*/
  2280. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms7_798));
  2281. /*]*/
  2282. }
  2283. else {
  2284. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2285. char b1='a';
  2286. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2287. }/*]*/
  2288. /*]*/
  2289. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),a3);
  2290. /*]*/
  2291. }
  2292. /*FI*/}
  2293. /*No:SWITCH.fz_12*/
  2294. /*No:SWITCH.fz_return*/
  2295. T0*oBC798tmp_string=NULL;
  2296. /*No:SWITCH.fz_16*/
  2297.  
  2298.